#ifndef _BITMAP_FONT_H_
#define _BITMAP_FONT_H_

#include "font.h"
#include <map>
#include <string>
class Image;

class BitmapFont : public Font
{
public:
                    BitmapFont( const std::string& Name );
	virtual			~BitmapFont();
    virtual bool	Init(	 const std::string& _Face,
                             unsigned long      _Width,
                             unsigned long      _Height,
							 bool				_Italic = false,
							 unsigned int		_Weight = FONT_BOLD);
	virtual void	Resize(const std::string& _Face, int Width, int Height, int Weight, unsigned long CharSet);

	virtual void	Render(	const std::wstring& Text,
							const math::Vec2& Pos,
							const math::Vec2& Size = math::Vec2(1.0f, 1.0f),
							unsigned int Flags = FONT_WORDBREAK, 
							COLOR		Color = ColorRGBA(255, 255, 255),
							bool	Clip = false);
						
	virtual float	GetHeight();

	virtual void			Flush();
	virtual void			FlushSprite() {};
	virtual void			Recreate();
protected:
	virtual bool			CustomInit();
	virtual bool			Load(const std::string& File);
	virtual void			SetTexture();

	std::string				m_TextureFile;
	std::string				m_ScriptFile;
	Image*					m_pTexture;
	int						m_FontC;
};

#endif // _BITMAP_FONT_H_